home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / xalan.jar / org / apache / xalan / xpath / XObject.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-04-12  |  3.7 KB  |  164 lines

  1. package org.apache.xalan.xpath;
  2.  
  3. import java.io.Serializable;
  4. import org.apache.xalan.xpath.xml.XSLMessages;
  5. import org.w3c.dom.DocumentFragment;
  6. import org.w3c.dom.NodeList;
  7. import org.w3c.dom.Text;
  8. import org.xml.sax.SAXException;
  9.  
  10. public class XObject implements Serializable {
  11.    protected Object m_obj;
  12.    public static final int CLASS_NULL = -1;
  13.    public static final int CLASS_UNKNOWN = 0;
  14.    public static final int CLASS_BOOLEAN = 1;
  15.    public static final int CLASS_NUMBER = 2;
  16.    public static final int CLASS_STRING = 3;
  17.    public static final int CLASS_NODESET = 4;
  18.    public static final int CLASS_RTREEFRAG = 5;
  19.  
  20.    public XObject() {
  21.    }
  22.  
  23.    public XObject(Object var1) {
  24.       this.m_obj = var1;
  25.    }
  26.  
  27.    public int getType() {
  28.       return 0;
  29.    }
  30.  
  31.    private String getTypeString() {
  32.       return "#UNKNOWN";
  33.    }
  34.  
  35.    public double num() throws SAXException {
  36.       this.error(18, new Object[]{this.getTypeString()});
  37.       return (double)0.0F;
  38.    }
  39.  
  40.    public boolean bool() throws SAXException {
  41.       this.error(18, new Object[]{this.getTypeString()});
  42.       return false;
  43.    }
  44.  
  45.    public String str() {
  46.       return this.m_obj.toString();
  47.    }
  48.  
  49.    public String toString() {
  50.       return this.str();
  51.    }
  52.  
  53.    public DocumentFragment rtree(XPathSupport var1) {
  54.       DocumentFragment var2 = this.rtree();
  55.       if (var2 == null) {
  56.          var2 = var1.getDOMFactory().createDocumentFragment();
  57.          Text var3 = var1.getDOMFactory().createTextNode(this.str());
  58.          var2.appendChild(var3);
  59.       }
  60.  
  61.       return var2;
  62.    }
  63.  
  64.    public DocumentFragment rtree() {
  65.       return null;
  66.    }
  67.  
  68.    public Object object() {
  69.       return this.m_obj;
  70.    }
  71.  
  72.    public NodeList nodeset() throws SAXException {
  73.       this.error(19, new Object[]{this.getTypeString()});
  74.       return null;
  75.    }
  76.  
  77.    public MutableNodeList mutableNodeset() throws SAXException {
  78.       this.error(20, new Object[]{this.getTypeString()});
  79.       return (MutableNodeList)this.m_obj;
  80.    }
  81.  
  82.    public Object castToType(int var1, XPathSupport var2) throws SAXException {
  83.       Object var3;
  84.       switch (var1) {
  85.          case 0:
  86.             var3 = this.m_obj;
  87.             break;
  88.          case 1:
  89.             var3 = new Boolean(this.bool());
  90.             break;
  91.          case 2:
  92.             var3 = new Double(this.num());
  93.             break;
  94.          case 3:
  95.             var3 = this.str();
  96.             break;
  97.          case 4:
  98.             var3 = this.nodeset();
  99.             break;
  100.          case 5:
  101.             var3 = this.rtree(var2);
  102.             break;
  103.          default:
  104.             this.error(21, new Object[]{this.getTypeString(), Integer.toString(var1)});
  105.             var3 = null;
  106.       }
  107.  
  108.       return var3;
  109.    }
  110.  
  111.    public boolean lessThan(XObject var1) throws SAXException {
  112.       if (var1.getType() == 4) {
  113.          return var1.greaterThan(this);
  114.       } else {
  115.          return this.num() < var1.num();
  116.       }
  117.    }
  118.  
  119.    public boolean lessThanOrEqual(XObject var1) throws SAXException {
  120.       if (var1.getType() == 4) {
  121.          return var1.greaterThanOrEqual(this);
  122.       } else {
  123.          return this.num() <= var1.num();
  124.       }
  125.    }
  126.  
  127.    public boolean greaterThan(XObject var1) throws SAXException {
  128.       if (var1.getType() == 4) {
  129.          return var1.lessThan(this);
  130.       } else {
  131.          return this.num() > var1.num();
  132.       }
  133.    }
  134.  
  135.    public boolean greaterThanOrEqual(XObject var1) throws SAXException {
  136.       if (var1.getType() == 4) {
  137.          return var1.lessThanOrEqual(this);
  138.       } else {
  139.          return this.num() >= var1.num();
  140.       }
  141.    }
  142.  
  143.    public boolean equals(XObject var1) throws SAXException {
  144.       return var1.getType() == 4 ? var1.equals(this) : this.m_obj.equals(var1.m_obj);
  145.    }
  146.  
  147.    public boolean notEquals(XObject var1) throws SAXException {
  148.       if (var1.getType() == 4) {
  149.          return var1.notEquals(this);
  150.       } else {
  151.          return !this.equals(var1);
  152.       }
  153.    }
  154.  
  155.    protected void error(int var1) throws SAXException {
  156.       this.error(var1, (Object[])null);
  157.    }
  158.  
  159.    protected void error(int var1, Object[] var2) throws SAXException {
  160.       String var3 = XSLMessages.createXPATHMessage(var1, var2);
  161.       throw new XPathException(var3);
  162.    }
  163. }
  164.